package managed.bean;

import com.marlboroug.entity.Orders;
import com.marlboroug.orders.OrdersManagerRemote;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

/**
 * Gestion des commandes.
 *
 * @author Cyril Schumacher
 */
@ManagedBean
@RequestScoped
public class OrderManager {
    // <editor-fold defaultstate="collapsed" desc="Membres.">
    /**
     * Gestion des commandes.
     */
    @EJB
    private OrdersManagerRemote _ordersManager;
    /**
     * Liste des commandes existantes.
     */
    private List<Orders> orders;
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="Accesseurs/Mutateurs.">
    /**
     * Obtient une liste des commandes existantes.
     *
     * @return Retourne la liste.
     */
    public List<Orders> getOrders() {
        return orders;
    }
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="Méthodes.">
    /**
     * Met à jour une commande.
     *
     * @param order Status de la commande.
     */
    public void update(Orders order) {
        if (_ordersManager.update(order) == false) {
            // Récupère les informations contextuelles associées au traitement 
            // de la requête pour pouvoir gérer les erreurs/informations.
            FacesContext context = FacesContext.getCurrentInstance();
            // Si l'utilisateur n'a pas pu être créer, on signale l'erreur à 
            // l'utilisateur.
            context.addMessage("id", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Une erreur est survenue lors de la mise à jour.", null));
        }
    }

    /**
     * Initialise la classe.
     */
    @PostConstruct
    public void initialize() {
        orders = _ordersManager.findAll();
    }
    // </editor-fold>
}
